﻿Imports PTIC_GestionBDD
Imports PTIC_Util
Imports Actuariat
Imports OMANE.moteurTauxGaranti1
Imports OMANE.moteurTauxGaranti2

Public Interface ITraitementsOMANE
    Inherits IObserver

    Function getTraitTbleTrAge() As tableBDD
    Function getTraitTbleTrCapi() As tableBDD
    Function getTraitTbleEncours() As tableBDD
    Function getTraitTbleMortH() As tableBDD
    Function getTraitTbleMortF() As tableBDD
    Function getTraitGrilleTarifaire() As tableBDD
    Function getTraitMaintienINCINVM2() As tableBDD
    Function getTraitSumCapInit() As RequeteBDD
    Function getTraitNbPretsXassu() As RequeteBDD
    Function getTraitTbleEncoursPrep1() As RequeteBDD
    Function getTraitTbleEncoursPrep2() As RequeteBDD
    Function getTraitTbleTravail() As RequeteBDD
    Function getTraitEntreeModeleTxGar() As RequeteBDD
    Function getTraitTbleEncoursStats() As RequeteBDD
    Function getTraitReqSegmentation() As RequeteBDD
    Function getTraitRegSegmentationParam(ByVal nomParam As String) As RequeteBDD
    Function getTraitRegSegmentationParamSens(ByVal nomParamSens As String) As RequeteBDD
    Function getTraitModeleTauxGarantis1() As Moteur_Methode1
    Function getTraitModeleTauxGarantis2() As Moteur_Methode2
    Function getTraitMoteurEcheancier() As Moteur_Echeancier

    Function creeTraitTbleTrCapi() As Boolean
    Function creeTraitTbleTrAges() As Boolean
    Function creeTraitTbleMortH() As Boolean
    Function creeTraitTbleMortF() As Boolean
    Function creeTraitGrilleTarifaire() As Boolean
    Function creeTraitMaintienINCINVM2() As Boolean
    Function creeTraitTbleEncours() As Boolean
    Function creeTraitSumCapIni() As Boolean
    Function creeTraitNbPretsXassu() As Boolean
    Function creeTraitPrepareEncours1() As Boolean
    Function creeTraitPrepareEncours2() As Boolean
    Function creeTraitTableTravail() As Boolean
    Function creeTraitEntreeModelesTxGar() As Boolean
    Function creeTraitStatsEncours() As Boolean
    Function creeTraitSegmentation() As Boolean
    Function creeTraitSegmentationParam(ByVal nomParam As String) As Boolean
    Function creeTraitSegmentationParamSens(ByVal nomParam As String) As Boolean
    Function creeTraitMoteurMethode1() As Boolean
    Function creeTraitMoteurMethode2() As Boolean
    Function creeTraitMoteurEcheancier() As Boolean

    Function actualiseTraitTbleMortH(ByVal nomPhysiqueRelatif As String) As Boolean
    Function actualiseTraitTbleMortF(ByVal nomPhysiqueRelatif As String) As Boolean
    Function actualiseGrilleTarifaire(ByVal nomGrille As String) As Boolean
    Function actualiseTraitTbleMaintienINCINVM2(ByVal nomPhysiqueRelatif As String) As Boolean
    Sub actualiseJointuresGrilleTarifaire()

End Interface

''' <summary>
''' Cette classe est observatrice de la collection de paramètres de l'étude
''' </summary>
''' <remarks></remarks>
Public Class listeTraitementsOMANE
    Inherits Dictionary(Of String, PTIC_GestionBDD.Traitement)
    Implements ITraitementsOMANE

    Protected _universOMANE As UniversOMANE
    Public Sub New(ByVal universOMANE As UniversOMANE)
        _universOMANE = universOMANE
    End Sub

#Region "Accesseurs aux traitements - Univers fortement typé"

    Public Function getTraitTbleTrAge() As tableBDD Implements ITraitementsOMANE.getTraitTbleTrAge
        If Not ContainsKey(PTIC_Util.nomTraitTbleTrAge) Then
            creeTraitTbleTrAges()
        End If
        Return Item(PTIC_Util.nomTraitTbleTrAge)
    End Function
    Public Function getTraitTbleTrCapi() As tableBDD Implements ITraitementsOMANE.getTraitTbleTrCapi
        If Not ContainsKey(PTIC_Util.nomTraitTbleTrCapi) Then
            creeTraitTbleTrCapi()
        End If
        Return Item(PTIC_Util.nomTraitTbleTrCapi)
    End Function
    Public Function getTraitTbleEncours() As tableBDD Implements ITraitementsOMANE.getTraitTbleEncours
        If Not ContainsKey(PTIC_Util.nomTraitTbleEncours) Then
            creeTraitTbleEncours()
        End If
        Return Item(PTIC_Util.nomTraitTbleEncours)
    End Function
    Public Function getTraitTbleMortH() As tableBDD Implements ITraitementsOMANE.getTraitTbleMortH
        If Not ContainsKey(PTIC_Util.nomTraitTbleMortH) Then
            creeTraitTbleMortH()
        End If
        Return Item(PTIC_Util.nomTraitTbleMortH)
    End Function
    Public Function getTraitTbleMortF() As tableBDD Implements ITraitementsOMANE.getTraitTbleMortF
        If Not ContainsKey(PTIC_Util.nomTraitTbleMortF) Then
            creeTraitTbleMortF()
        End If
        Return Item(PTIC_Util.nomTraitTbleMortF)
    End Function
    Public Function getTraitGrilleTarifaire() As tableBDD Implements ITraitementsOMANE.getTraitGrilleTarifaire
        If Not ContainsKey(PTIC_Util.nomTraitGrilleTarifaire) Then
            creeTraitGrilleTarifaire()
        End If
        Return Item(PTIC_Util.nomTraitGrilleTarifaire)
    End Function
    Public Function getTraitMaintienINCINVM2() As tableBDD Implements ITraitementsOMANE.getTraitMaintienINCINVM2
        If Not ContainsKey(PTIC_Util.nomTraitTbleMaintienINCINV_M2) Then
            creeTraitMaintienINCINVM2()
        End If
        Return Item(PTIC_Util.nomTraitTbleMaintienINCINV_M2)
    End Function
    Public Function getTraitSumCapInit() As RequeteBDD Implements ITraitementsOMANE.getTraitSumCapInit
        If Not ContainsKey(PTIC_Util.nomTraitReqSumCapIni) Then
            creeTraitSumCapIni()
        End If
        Return Item(PTIC_Util.nomTraitReqSumCapIni)
    End Function
    Public Function getTraitNbPretsXassu() As RequeteBDD Implements ITraitementsOMANE.getTraitNbPretsXassu
        If Not ContainsKey(PTIC_Util.nomTraitReqNbPretsXassu) Then
            creeTraitNbPretsXassu()
        End If
        Return Item(PTIC_Util.nomTraitReqNbPretsXassu)
    End Function
    Public Function getTraitTbleEncoursPrep1() As RequeteBDD Implements ITraitementsOMANE.getTraitTbleEncoursPrep1
        If Not ContainsKey(PTIC_Util.nomTraitTbleEncoursPrep1) Then
            creeTraitPrepareEncours1()
        End If
        Return Item(PTIC_Util.nomTraitTbleEncoursPrep1)
    End Function
    Public Function getTraitTbleEncoursPrep2() As RequeteBDD Implements ITraitementsOMANE.getTraitTbleEncoursPrep2
        If Not ContainsKey(PTIC_Util.nomTraitTbleEncoursPrep2) Then
            creeTraitPrepareEncours2()
        End If
        Return Item(PTIC_Util.nomTraitTbleEncoursPrep2)
    End Function
    Public Function getTraitTbleTravail() As RequeteBDD Implements ITraitementsOMANE.getTraitTbleTravail
        If Not ContainsKey(PTIC_Util.nomTraitTbleTravail) Then
            creeTraitTableTravail()
        End If
        Return Item(PTIC_Util.nomTraitTbleTravail)
    End Function
    Public Function getTraitEntreeModeleTxGar() As RequeteBDD Implements ITraitementsOMANE.getTraitEntreeModeleTxGar
        If Not ContainsKey(PTIC_Util.nomTraitEntreeModeleTxGar) Then
            creeTraitEntreeModelesTxGar()
        End If
        Return Item(PTIC_Util.nomTraitEntreeModeleTxGar)
    End Function
    Public Function getTraitTbleEncoursStats() As RequeteBDD Implements ITraitementsOMANE.getTraitTbleEncoursStats
        If Not ContainsKey(PTIC_Util.nomTraitTbleEncoursStats) Then
            creeTraitStatsEncours()
        End If
        Return Item(PTIC_Util.nomTraitTbleEncoursStats)
    End Function
    Public Function getTraitReqSegmentation() As RequeteBDD Implements ITraitementsOMANE.getTraitReqSegmentation
        If Not ContainsKey(PTIC_Util.nomTraitReqSegmentation) Then
            creeTraitSegmentation()
        End If
        Return Item(PTIC_Util.nomTraitReqSegmentation)
    End Function
    Public Function getTraitRegSegmentationParam(ByVal nomParam As String) As RequeteBDD Implements ITraitementsOMANE.getTraitRegSegmentationParam
        If Not ContainsKey(PTIC_Util.nomTraitRegSegmentationParamGenerique & nomParam) Then
            creeTraitSegmentationParam(nomParam)
        End If
        Return Item(PTIC_Util.nomTraitRegSegmentationParamGenerique & nomParam)
    End Function
    Public Function getTraitRegSegmentationParamSens(ByVal nomParamSens As String) As RequeteBDD Implements ITraitementsOMANE.getTraitRegSegmentationParamSens
        If Not ContainsKey(PTIC_Util.nomTraitRegSegmentationParamSensGenerique & nomParamSens) Then
            creeTraitSegmentationParamSens(nomParamSens)
        End If
        Return Item(PTIC_Util.nomTraitRegSegmentationParamSensGenerique & nomParamSens)
    End Function
    Public Function getTraitMoteurMethode1() As Moteur_Methode1 Implements ITraitementsOMANE.getTraitModeleTauxGarantis1
        If Not ContainsKey(PTIC_Util.nomTraitMoteurMethode1) Then
            creeTraitMoteurMethode1()
        End If
        Return Item(PTIC_Util.nomTraitMoteurMethode1)
    End Function
    Public Function getTraitMoteurMethode2() As Moteur_Methode2 Implements ITraitementsOMANE.getTraitModeleTauxGarantis2
        If Not ContainsKey(PTIC_Util.nomTraitMoteurMethode2) Then
            creeTraitMoteurMethode2()
        End If
        Return Item(PTIC_Util.nomTraitMoteurMethode2)
    End Function
    Public Function getTraitMoteurEcheancier() As Moteur_Echeancier Implements ITraitementsOMANE.getTraitMoteurEcheancier
        If Not ContainsKey(PTIC_Util.nomTraitMoteurEcheancier) Then
            creeTraitMoteurEcheancier()
        End If
        Return Item(PTIC_Util.nomTraitMoteurEcheancier)

    End Function

#End Region

#Region "Création des traitements du projet OMANE"

    ''' <summary>
    ''' Tranches d'âge
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitTbleTrAges() As Boolean Implements ITraitementsOMANE.creeTraitTbleTrAges

        Dim result As Boolean = True
        Try
            'Initialiseur (création du mapping en sortie de la table d'encours)
            Dim initialiseur As New initialiseurTableBDDdefaut()
            'L'ajout dans la collection est automatique car l'univers est passé en paramètre
            Dim tableBDDTrAges As tableBDD = New TableBDD_SAS(PTIC_Util.nomTraitTbleTrAge, _
                                                          csteLibSASreferentiel, _
                                                          initialiseur, _
                                                          _universOMANE)
        Catch ex As Exception
            MsgBox(ex.Message)
            result = False
        End Try
        Return result
    End Function
    ''' <summary>
    ''' Tranches de capitaux
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitTbleTrCapi() As Boolean Implements ITraitementsOMANE.creeTraitTbleTrCapi

        Dim result As Boolean = True
        Try
            'Initialiseur (création du mapping en sortie de la table d'encours)
            Dim initialiseur As New initialiseurTableBDDdefaut()
            'L'ajout dans la collection est automatique car l'univers est passé en paramètre
            Dim tableBDDTrCapi As tableBDD = New TableBDD_SAS(PTIC_Util.nomTraitTbleTrCapi, _
                                                              csteLibSASreferentiel, _
                                                              initialiseur, _
                                                              _universOMANE)
        Catch ex As Exception
            MsgBox(ex.Message)
            result = False
        End Try
        Return result
    End Function
    ''' <summary>
    ''' Table de mortalité des hommes
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitTbleMortH() As Boolean Implements ITraitementsOMANE.creeTraitTbleMortH
        Dim result As Boolean = True
        Try
            'Initialiseur (création du mapping en sortie de la table d'encours)
            Dim initialiseur As New initialiseurTableTauxMortalite()
            'L'ajout dans la collection est automatique car l'univers est passé en paramètre
            Dim table_BDD_MortH As tableBDD = New TableBDD_SAS(PTIC_Util.nomTraitTbleMortH, _
                                                               csteLibSASreferentiel, _
                                                               initialiseur, _
                                                               _universOMANE)
        Catch ex As Exception
            MsgBox(ex.Message)
            result = False
        End Try
        Return result
    End Function
    ''' <summary>
    ''' Table de mortalité des femmes
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitTbleMortF() As Boolean Implements ITraitementsOMANE.creeTraitTbleMortF
        Dim result As Boolean = True
        Try
            'Initialiseur (création du mapping en sortie de la table d'encours)
            Dim initialiseur As New initialiseurTableTauxMortalite()
            'L'ajout dans la collection est automatique car l'univers est passé en paramètre
            Dim table_BDD_MortF As tableBDD = New TableBDD_SAS(PTIC_Util.nomTraitTbleMortF, _
                                                               csteLibSASreferentiel, _
                                                               initialiseur, _
                                                               _universOMANE)
        Catch ex As Exception
            MsgBox(ex.Message)
            result = False
        End Try
        Return result
    End Function
    ''' <summary>
    ''' Grille tarifaire
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitGrilleTarifaire() As Boolean Implements ITraitementsOMANE.creeTraitGrilleTarifaire
        Dim result As Boolean = True
        Try
            'Initialiseur (création du mapping en sortie de la table d'encours)
            Dim initialiseur As New initialiseurTableGrilleTarifaire()
            'L'ajout dans la collection est automatique car l'univers est passé en paramètre
            Dim table_BDD_tarif As tableBDD = New TableBDD_SAS(PTIC_Util.nomTraitGrilleTarifaire, _
                                                               csteLibSASreferentiel, _
                                                               initialiseur, _
                                                               _universOMANE)
        Catch ex As Exception
            MsgBox(ex.Message)
            result = False
        End Try
        Return result
    End Function
    ''' <summary>
    ''' Maintien en INCAP/INVAL méthode 2 de calcul du taux garanti
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitMaintienINCINVM2() As Boolean Implements ITraitementsOMANE.creeTraitMaintienINCINVM2
        Dim result As Boolean = True
        Try
            'Initialiseur (création du mapping en sortie de la table d'encours)
            Dim initialiseur As New initialiseurTableBDDdefaut()
            'L'ajout dans la collection est automatique car l'univers est passé en paramètre
            Dim table_BDD_INCINV_M2 As tableBDD = New TableBDD_SAS( _
                                                               PTIC_Util.nomTraitTbleMaintienINCINV_M2, _
                                                               csteLibSASreferentiel, _
                                                               initialiseur, _
                                                               _universOMANE)
        Catch ex As Exception
            MsgBox(ex.Message)
            result = False
        End Try
        Return result
    End Function
    ''' <summary>
    ''' Intégration de la table d'encours
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitTbleEncours() As Boolean Implements ITraitementsOMANE.creeTraitTbleEncours
        Dim result As Boolean = True
        Try
            'Initialiseur (création du mapping en sortie de la table d'encours)
            Dim initialiseurTableBDD As New initialiseurTableBDDEncours(csteEmplacementParametrage & "lstMappingEncours.xml")
            Dim tbleBDD_encours As New TableBDD_SAS(PTIC_Util.nomTraitTbleEncours, _
                                                    csteLibSASEncours, _
                                                    initialiseurTableBDD, _
                                                    _universOMANE)
            tbleBDD_encours.AjouteObserver(Me)
        Catch ex As Exception
            result = False
        End Try
        Return result
    End Function
    ''' <summary>
    ''' Source : TbleEncours
    ''' Ajouts : Somme des capitaux initiaux
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitSumCapIni() As Boolean Implements ITraitementsOMANE.creeTraitSumCapIni
        Dim result As Boolean = True
        'Récupération de la requête de prétraitement de la table d'encours (ajout des tranches d'âge et de capitaux)
        Dim traitTbleEncours As tableBDD = getTraitTbleEncours()

        'Création du traitement de préparation de la table d'encours
        Dim reqTraitSumCapIni As New RequeteBDD( _
                nomTraitReqSumCapIni, _
                New Cla_NomFichier(csteEmplacementCalculsInt & nomTraitReqSumCapIni & ".sas7bdat"), _
                csteLibSASCalculsInt, _
                _universOMANE.connectionSAS)
        reqTraitSumCapIni.univers = _universOMANE
        'Intégration de la requête à l'univers
        Add(reqTraitSumCapIni.nom, reqTraitSumCapIni)

        'Ajout des traitements constitutifs
        reqTraitSumCapIni.addTraitementConstitutif(traitTbleEncours)

        'Définition de la requête
        reqTraitSumCapIni.isDISTINCT = False
        With traitTbleEncours
            reqTraitSumCapIni.addSELECTsum(.nom, descCapIni, nomSumCapIni, descSumCapIni, "#,###")
        End With
        Return result

    End Function
    ''' <summary>
    ''' Source : TbleEncours
    ''' Ajouts : Somme des nombres de prêts X assurés
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitNbPretsXassu() As Boolean Implements ITraitementsOMANE.creeTraitNbPretsXassu
        Dim result As Boolean = True
        'Récupération de la requête de prétraitement de la table d'encours (ajout des tranches d'âge et de capitaux)
        Dim traitTbleEncours As tableBDD = getTraitTbleEncours()

        'Création du traitement de préparation de la table d'encours
        Dim reqTraitNbPretsXassu As New RequeteBDD( _
                nomTraitReqNbPretsXassu, _
                New Cla_NomFichier(csteEmplacementCalculsInt & nomTraitReqNbPretsXassu & ".sas7bdat"), _
                csteLibSASCalculsInt, _
                _universOMANE.connectionSAS)
        reqTraitNbPretsXassu.univers = _universOMANE
        'Intégration de la requête à l'univers
        Add(reqTraitNbPretsXassu.nom, reqTraitNbPretsXassu)

        'Ajout des traitements constitutifs
        reqTraitNbPretsXassu.addTraitementConstitutif(traitTbleEncours)

        'Définition de la requête
        reqTraitNbPretsXassu.isDISTINCT = False
        With traitTbleEncours
            reqTraitNbPretsXassu.addSELECTcalculee( _
                New String() {.nom}, _
                New String() {descIdReseau}, _
                "count({1})", _
                nomNbPretsXassu, _
                descNbPretsXassu)
        End With
        Return result

    End Function
    ''' <summary>
    ''' Source : TbleEncours
    ''' Ajouts : trAges, trCapitaux, Ages exacts et entiers
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitPrepareEncours1() As Boolean Implements ITraitementsOMANE.creeTraitPrepareEncours1

        Dim tbleEncours As tableBDD = getTraitTbleEncours()

        'Récupération des traitements sur les tranches d'âge et de capitaux et intégration
        'pour le calcul du taux garanti
        'Création du traitement
        Dim reqPrepTbleEncours1 As New RequeteBDD(PTIC_Util.nomTraitTbleEncoursPrep1, _
                                                  New Cla_NomFichier(csteEmplacementCalculsInt & "tbleReqPrepTbleEncours1.sas7bdat"), _
                                                  csteLibSASCalculsInt, _
                                                  _universOMANE.connectionSAS)
        reqPrepTbleEncours1.univers = _universOMANE
        Add(reqPrepTbleEncours1.nom, reqPrepTbleEncours1)

        'Intégration de la table d'encours comme traitement constitutif
        reqPrepTbleEncours1.addTraitementConstitutif(tbleEncours)
        reqPrepTbleEncours1.isDISTINCT = False
        For Each corresp As Correspondance In tbleEncours.ListeChampsSortie.Values
            Dim correspPrepEnc As Correspondance = reqPrepTbleEncours1.addSELECT(tbleEncours.nom, corresp.description)
        Next

        'Ajout des tranches d'âge
        Dim correspTrAge As CorrespondanceTranche = _
            reqPrepTbleEncours1.addSELECTtranche(desctrAge, _
                                                 nomtrAge, _
                                                 _universOMANE.getDataTable("dtbleSortie_traitTbleTrAge"), _
                                                 "minTrAge", _
                                                 "maxTrAge", _
                                                 "trAge", _
                                                 "({2}-{1})/365.25")
        correspTrAge.addCorrespFormule(tbleEncours.ListeChampsSortie.Item(descDateNaiss))
        correspTrAge.addCorrespFormule(tbleEncours.ListeChampsSortie.Item(descDateDebloFonds))
        reqPrepTbleEncours1.addDependance(tbleEncours.ListeChampsSortie.Item(descDateNaiss))
        reqPrepTbleEncours1.addDependance(tbleEncours.ListeChampsSortie.Item(descDateDebloFonds))
        reqPrepTbleEncours1.addDependance(correspTrAge)

        'Ajout des tranches de capitaux
        Dim correspTrCapi As CorrespondanceTranche = _
            reqPrepTbleEncours1.addSELECTtranche("Tranche de capitaux", _
                                                 "trCapi", _
                                                 _universOMANE.getDataTable("dtbleSortie_" & nomTraitTbleTrCapi), _
                                                 "minTrCapi", _
                                                 "maxTrCapi", _
                                                 "trCapi")
        correspTrCapi.addCorrespFormule(tbleEncours.ListeChampsSortie.Item(descCapIni))
        reqPrepTbleEncours1.addDependance(tbleEncours.ListeChampsSortie.Item(descCapIni))
        reqPrepTbleEncours1.addDependance(correspTrCapi)

        Dim correspAge As Correspondance = reqPrepTbleEncours1.addSELECTage(tbleEncours.nom, _
                                                tbleEncours.nom, _
                                                descDateDebloFonds, _
                                                descDateNaiss, _
                                                nomAgeSousAnExact, _
                                                descAgeSousAnExact)

        'Ajout d'une correspondance calculée pour l'age entier de l'assuré
        Dim TabNomTraitementsSource(1) As String
        TabNomTraitementsSource(0) = tbleEncours.nom
        TabNomTraitementsSource(1) = tbleEncours.nom

        Dim tabDescrCorrespSource(1) As String
        tabDescrCorrespSource(0) = descDateNaiss
        tabDescrCorrespSource(1) = descDateDebloFonds

        Dim formuleCalcul As String = "INT(({2}-{1})/365.25)"
        Dim nomChResultat = nomAgeSousAnEntier
        Dim descrChResultat As String = descAgeSousAnEntier

        Dim correspAgeEntier As Correspondance = reqPrepTbleEncours1.addSELECTcalculee(TabNomTraitementsSource, _
                                          tabDescrCorrespSource, _
                                          formuleCalcul, _
                                          nomChResultat, _
                                          descrChResultat)
        reqPrepTbleEncours1.addWHERE("testAgeMin", correspAgeEntier, operateurFiltreBDD.SuperieurOuEgal, "18")
        reqPrepTbleEncours1.addWHERE("testAgeMax", correspAgeEntier, operateurFiltreBDD.InferieurOuEgal, "65")
    End Function
    ''' <summary>
    ''' Source : prepareEncours1
    ''' Ajouts : taux de mortalité
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitPrepareEncours2() As Boolean Implements ITraitementsOMANE.creeTraitPrepareEncours2

        'Récupération des traitements source
        Dim tbleEncoursPrep1 As RequeteBDD = getTraitTbleEncoursPrep1()
        Dim tbleMortH As tableBDD = getTraitTbleMortH()
        Dim tbleMortF As tableBDD = getTraitTbleMortF()

        'Création du traitement de préparation de la table d'encours
        Dim reqPrepTbleEncours2 As New RequeteBDD("traitReqPrepTbleEncours2", _
                                  New Cla_NomFichier(csteEmplacementCalculsInt & "tbleReqPrepTbleEncours2.sas7bdat"), _
                                  csteLibSASCalculsInt, _
                                  _universOMANE.connectionSAS)
        reqPrepTbleEncours2.univers = _universOMANE
        Add(reqPrepTbleEncours2.nom, reqPrepTbleEncours2)
        reqPrepTbleEncours2.addTraitementConstitutif(tbleEncoursPrep1)
        reqPrepTbleEncours2.addTraitementConstitutif(tbleMortH)
        reqPrepTbleEncours2.addTraitementConstitutif(tbleMortF)
        reqPrepTbleEncours2.isDISTINCT = False

        'Ajout des correspondances du prétraitement 1 de la base d'encours
        For Each corresp As Correspondance In tbleEncoursPrep1.ListeChampsSortie.Values
            If corresp.description <> descTxMortAn Then
                Dim correspPrepEnc As Correspondance = reqPrepTbleEncours2.addSELECT(tbleEncoursPrep1.nom, corresp.description)
            End If
        Next

        'Liaison avec la table de mortalité retenue pour les hommes
        Dim nomChjoint1PrepEncours As New List(Of String)
        nomChjoint1PrepEncours.Add(descAgeSousAnEntier)
        Dim nomChJoint1TbleMortH As New List(Of String)
        nomChJoint1TbleMortH.Add(descAgeAnEntier)
        reqPrepTbleEncours2.addJointure(tbleEncoursPrep1.nom, _
                                        nomChjoint1PrepEncours, _
                                        tbleMortH.nom, _
                                        nomChJoint1TbleMortH, _
                                        typeJointure.GAUCHE)

        'Liaison avec la table de mortalité retenue pour les femmes
        Dim nomChjoint2PrepEncours As New List(Of String)
        nomChjoint2PrepEncours.Add(descAgeSousAnEntier)
        Dim nomChJoint2TbleMortF As New List(Of String)
        nomChJoint2TbleMortF.Add(descAgeAnEntier)

        reqPrepTbleEncours2.addJointure(tbleEncoursPrep1.nom, _
                                        nomChjoint2PrepEncours, _
                                        tbleMortF.nom, _
                                        nomChJoint2TbleMortF, _
                                        typeJointure.GAUCHE)

        Dim nomTraitScesCalcule(1) As String
        Dim descrCorrespSces(1) As String
        Dim formuleCalcul As String = ""
        nomTraitScesCalcule(0) = tbleMortH.nom
        nomTraitScesCalcule(1) = tbleMortF.nom
        descrCorrespSces(0) = descTxMortAn
        descrCorrespSces(1) = descTxMortAn
        formuleCalcul = "CASE WHEN " & nomSexeAssu & "='H' THEN {1} ELSE {2} END"

        Dim correspAjoutee As Correspondance = reqPrepTbleEncours2.addSELECTcalculee(nomTraitScesCalcule, _
                                              descrCorrespSces, _
                                              formuleCalcul, _
                                              nomTxMortAn, _
                                              descTxMortAn)

        reqPrepTbleEncours2.addSELECT(tbleMortF.nom, _
                                      descTxMortAn, _
                                      nomTxMortAn & "F", _
                                      descTxMortAn & " des femmes")

        reqPrepTbleEncours2.addSELECT(tbleMortH.nom, _
                                      descTxMortAn, _
                                      nomTxMortAn & "H", _
                                      descTxMortAn & " des hommes")

        Return True
    End Function
    ''' <summary>
    ''' Source : prepareEncours2
    ''' Ajouts : Grille tarifaire
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks>Ce traitement effectue la jointure de la table résultant du 2ème prétraitement et
    ''' de la grille tarifaire retenue
    '''</remarks>
    Protected Function creeTraitTableTravail() As Boolean Implements ITraitementsOMANE.creeTraitTableTravail

        'Récupération des traitements source
        'Initialisation du traitement de la grille tarifaire
        Dim tbleEncoursPrep2 As RequeteBDD = getTraitTbleEncoursPrep2()
        Dim tbleGrilleTarifaire As tableBDD = getTraitGrilleTarifaire()

        If Not tbleEncoursPrep2 Is Nothing Then

            'Création du traitement de préparation de la table d'encours
            Dim reqTableTravail As New RequeteBDD("traitTableTravail", _
                                      New Cla_NomFichier(csteEmplacementCalculsInt & "traitTableTravail.sas7bdat"), _
                                      csteLibSASCalculsInt, _
                                       _universOMANE.connectionSAS)
            reqTableTravail.univers = _universOMANE
            Add(reqTableTravail.nom, reqTableTravail)
            reqTableTravail.addTraitementConstitutif(tbleEncoursPrep2)
            reqTableTravail.addTraitementConstitutif(tbleGrilleTarifaire)
            reqTableTravail.isDISTINCT = False

            'Ajout des correspondances du prétraitement 1 de la base d'encours
            For Each corresp As Correspondance In tbleEncoursPrep2.ListeChampsSortie.Values
                Dim correspPrepEnc As Correspondance = reqTableTravail.addSELECT(tbleEncoursPrep2.nom, corresp.description)
            Next

            'Ajout des champs de la grille tarifaire
            reqTableTravail.addSELECT(tbleGrilleTarifaire.nom, descPComDC_Non_Derog)
            reqTableTravail.addSELECT(tbleGrilleTarifaire.nom, descPComDC_Derog)
            reqTableTravail.addSELECT(tbleGrilleTarifaire.nom, descPourDC_Derog)
            reqTableTravail.addSELECT(tbleGrilleTarifaire.nom, descPComINCINV_Non_Derog)
            reqTableTravail.addSELECT(tbleGrilleTarifaire.nom, descPComINCINV_Derog)
            reqTableTravail.addSELECT(tbleGrilleTarifaire.nom, descPourINCINV_Derog)

            'Liaison avec la grille tarifaire retenue
            actualiseJointuresGrilleTarifaire()

        End If
        Return True
    End Function
    ''' <summary>
    ''' Source : traitTableTravail
    ''' Ajouts : regroupements selon les segments retenus pour l'étude
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitEntreeModelesTxGar() As Boolean Implements ITraitementsOMANE.creeTraitEntreeModelesTxGar

        'Il reste à l'agréger au niveau de détail retenu pour la segmentation
        Dim reqTbleTravail As RequeteBDD = getTraitTbleTravail()
        Dim segEtude As Dictionary(Of String, Correspondance) = _universOMANE.Segmentation.Retenue

        Dim traitReqEntreeModelesTxGar As New RequeteBDD("traitReqEntreeModelesTxGar", _
                                              New Cla_NomFichier(csteEmplacementCalculsInt & "traitReqEntreeModelesTxGar.sas7bdat"), _
                                              csteLibSASCalculsInt, _
                                              _universOMANE.connectionSAS)
        traitReqEntreeModelesTxGar.univers = _universOMANE
        traitReqEntreeModelesTxGar.addTraitementConstitutif(reqTbleTravail)
        Add(traitReqEntreeModelesTxGar.nom, traitReqEntreeModelesTxGar)

        traitReqEntreeModelesTxGar.isDISTINCT = False

        For Each corresp In segEtude.Values
            traitReqEntreeModelesTxGar.addSELECT(reqTbleTravail.nom, corresp.description)
            traitReqEntreeModelesTxGar.addGROUPBY(reqTbleTravail.nom, corresp.description)
        Next

        With reqTbleTravail
            traitReqEntreeModelesTxGar.addSELECTsum(.nom, descCapAssure, nomSumCSR, descSumCSR, "#,###")
            traitReqEntreeModelesTxGar.addSELECTsum(.nom, descCapIni, nomSumCapIni, descSumCapIni, "#,###")
            traitReqEntreeModelesTxGar.addSELECTcalculee( _
                                        New String() {.nom}, _
                                        New String() {descIdReseau}, _
                                        "count({1})", _
                                        nomNbPretsXassu, _
                                        descNbPretsXassu)
            traitReqEntreeModelesTxGar.addSELECTmoypond(.nom, .nom, descPComDC_Non_Derog, _
                                        descCapAssure, nomPComDC_Non_Derog_Actu, _
                                        descPComDC_Non_Derog_Actu, "p")
            traitReqEntreeModelesTxGar.addSELECTmoypond(.nom, .nom, descPComDC_Derog, _
                                        descCapAssure, nomPComDC_Derog_Actu, _
                                        descPComDC_Derog_Actu, "p")
            traitReqEntreeModelesTxGar.addSELECTmoypond(.nom, .nom, descPourDC_Derog, _
                                        descCapAssure, nomPourDC_Derog_Actu, _
                                        descPourDC_Derog_Actu, "p")
            traitReqEntreeModelesTxGar.addSELECTmoypond(.nom, .nom, descPComINCINV_Non_Derog, _
                                        descCapAssure, nomPComINCINV_Non_Derog_Actu, _
                                        descPComINCINV_Non_Derog_Actu, "p")
            traitReqEntreeModelesTxGar.addSELECTmoypond(.nom, .nom, descPComINCINV_Derog, _
                                        descCapAssure, nomPComINCINV_Derog_Actu, _
                                        descPComINCINV_Derog_Actu, "p")
            traitReqEntreeModelesTxGar.addSELECTmoypond(.nom, .nom, descPourINCINV_Derog, _
                                        descCapAssure, nomPourINCINV_Derog_Actu, _
                                        descPourINCINV_Derog_Actu, "p")
            AddHandler getTraitEntreeModeleTxGar.etatAchange, AddressOf getTraitMoteurMethode1.traitEntree_EtatAChange
        End With
    End Function
    ''' <summary>
    ''' Source : prepareEncours1
    ''' Ajouts : regoupements par type de prêt et tranches d'âge
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitStatsEncours() As Boolean Implements ITraitementsOMANE.creeTraitStatsEncours

        'Récupération de la requête de prétraitement de la table d'encours (ajout des tranches d'âge et de capitaux)
        Dim tbleEncoursPrep1 As RequeteBDD = getTraitTbleEncoursPrep1()

        'Création du traitement de préparation de la table d'encours
        Dim reqTbleEncoursStats As New RequeteBDD("traitReqTbleEncoursStats", _
                                  New Cla_NomFichier(csteEmplacementCalculsInt & "tbleReqTbleEncoursStats.sas7bdat"), _
                                  csteLibSASCalculsInt, _
                                  _universOMANE.connectionSAS)
        reqTbleEncoursStats.univers = _universOMANE
        'Intégration de la requête à l'univers
        Add(reqTbleEncoursStats.nom, reqTbleEncoursStats)

        'Ajout des traitements constitutifs
        reqTbleEncoursStats.addTraitementConstitutif(tbleEncoursPrep1)

        'Définition de la requête
        reqTbleEncoursStats.isDISTINCT = False
        With tbleEncoursPrep1
            reqTbleEncoursStats.addSELECT(.nom, desctrAge)
            reqTbleEncoursStats.addSELECT(.nom, descIdTypePret)
            reqTbleEncoursStats.addSELECTsum(.nom, descCapAssure, nomSumCSR, descSumCSR, "#,###")
            reqTbleEncoursStats.addSELECTmoypond(.nom, _
                                                 .nom, _
                                                 descTauxNominal, _
                                                 descCapAssure, _
                                                 nomTxNom_Actu, _
                                                 descTxNom_Actu, _
                                                 "p")
            reqTbleEncoursStats.addSELECTmoypond(.nom, _
                                                 .nom, _
                                                 descDuree, _
                                                 descCapAssure, _
                                                 nomDuree_Actu, _
                                                 descDuree_Actu, _
                                                 "#,###")
            reqTbleEncoursStats.addGROUPBY(.nom, desctrAge)
            reqTbleEncoursStats.addGROUPBY(.nom, descIdTypePret)
            reqTbleEncoursStats.isDISTINCT = False
        End With

    End Function
    ''' <summary>
    ''' Source : prepareEncours1
    ''' Ajouts : mis à jour directement par le contrôleur lorsque la segmentation est modifiée
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitSegmentation() As Boolean Implements ITraitementsOMANE.creeTraitSegmentation

        'Récupération de la requête de prétraitement de la table d'encours (ajout des tranches d'âge et de capitaux)
        Dim tbleEncoursPrep1 As RequeteBDD = getTraitTbleEncoursPrep1()

        'Création du traitement de préparation de la table d'encours
        Dim reqSegmentation As New RequeteBDD("traitReqSegmentation", _
                                  New Cla_NomFichier(csteEmplacementCalculsInt & "tbleReqSegmentation.sas7bdat"), _
                                  csteLibSASCalculsInt, _
                                  _universOMANE.connectionSAS)
        reqSegmentation.univers = _universOMANE
        'Intégration de la requête à l'univers
        Add(reqSegmentation.nom, reqSegmentation)

        'Ajout des traitements constitutifs
        reqSegmentation.addTraitementConstitutif(tbleEncoursPrep1)

        'Définition de la requête (pour déterminer la segmentation, on extrait sans doublons)
        reqSegmentation.isDISTINCT = True

        Return True
    End Function
    ''' <summary>
    ''' Source : prepareEncours1
    ''' Ajouts : mis à jour directement par le paramètre concerné
    ''' </summary>
    ''' <param name="nomParam"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitSegmentationParam(ByVal nomParam As String) As Boolean Implements ITraitementsOMANE.creeTraitSegmentationParam
        'Récupération de la requête de prétraitement de la table d'encours (ajout des tranches d'âge et de capitaux)
        Dim tbleEncoursPrep1 As RequeteBDD = getTraitTbleEncoursPrep1()

        'Création du traitement de préparation de la table d'encours
        Dim reqSegmentation As New RequeteBDD("traitReqSegmentationParam" & nomParam, _
                                  New Cla_NomFichier(csteEmplacementCalculsInt & "tbleReqSegmentation.sas7bdat"), _
                                  csteLibSASCalculsInt, _
                                  _universOMANE.connectionSAS)
        reqSegmentation.univers = _universOMANE
        'Intégration de la requête à l'univers
        Add(reqSegmentation.nom, reqSegmentation)

        'Ajout des traitements constitutifs
        reqSegmentation.addTraitementConstitutif(tbleEncoursPrep1)

        'Définition de la requête (pour déterminer la segmentation, on extrait sans doublons)
        reqSegmentation.isDISTINCT = True
        AddHandler reqSegmentation.allHasBeenInvalidated, AddressOf onReqParametreHasBeenInvalidated
        Return True
    End Function
    ''' <summary>
    ''' Source : prepareEncours1
    ''' Ajouts : mis à jour directement par le paramètre concerné
    ''' </summary>
    ''' <param name="nomParam"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitSegmentationParamSens(ByVal nomParam As String) As Boolean Implements ITraitementsOMANE.creeTraitSegmentationParamSens

        'Récupération de la requête de prétraitement 1 de la table d'encours (ajout des tranches d'âge et de capitaux)
        Dim tbleEncoursPrep1 As RequeteBDD = getTraitTbleEncoursPrep1()
        'Récupération de la requête de prétraitement 2 de la table d'encours (ajout des taux de mortalité)
        Dim tbleEncoursPrep2 As RequeteBDD = getTraitTbleEncoursPrep2()

        'Création du traitement de préparation de la table d'encours
        Dim reqSegmentationParamSens As New RequeteBDD("traitReqSegmentationParam" & nomParam, _
                                  New Cla_NomFichier(csteEmplacementCalculsInt & "tbleReqSegmentation.sas7bdat"), _
                                  csteLibSASCalculsInt, _
                                  _universOMANE.connectionSAS)
        reqSegmentationParamSens.univers = _universOMANE
        'Intégration de la requête à l'univers
        Add(reqSegmentationParamSens.nom, reqSegmentationParamSens)
        'Ajout des traitements constitutifs
        If nomParam = nomTxMort_Actu Then
            reqSegmentationParamSens.addTraitementConstitutif(tbleEncoursPrep2)
        Else
            reqSegmentationParamSens.addTraitementConstitutif(tbleEncoursPrep1)
        End If
        'Définition de la requête (pour déterminer la segmentation, on extrait sans doublons)
        reqSegmentationParamSens.isDISTINCT = False

        'Ajout du champs calculé à la requête en fonction du paramètre 'nomParam'
        If nomParam = nomDuree_Actu Then
            With tbleEncoursPrep1
                reqSegmentationParamSens.addSELECTmoypond(.nom, _
                                                     .nom, _
                                                     descDuree, _
                                                     descCapAssure, _
                                                     nomDuree_Actu, _
                                                     descDuree_Actu, _
                                                     "#,###")
            End With
        End If
        If nomParam = nomTxNom_Actu Then
            With tbleEncoursPrep1
                reqSegmentationParamSens.addSELECTmoypond(.nom, _
                                         .nom, _
                                         descTauxNominal, _
                                         descCapAssure, _
                                         nomTxNom_Actu, _
                                         descTxNom_Actu, _
                                         "p")
            End With
        End If
        If nomParam = nomTxMort_Actu Then
            With tbleEncoursPrep1
                reqSegmentationParamSens.addSELECTmoypond(tbleEncoursPrep2.nom, _
                                         tbleEncoursPrep2.nom, _
                                         descTxMortAn, _
                                         descCapAssure, _
                                         nomTxMort_Actu, _
                                         descTxMort_Actu, _
                                         "0.000 %")
            End With
        End If
        AddHandler reqSegmentationParamSens.allHasBeenInvalidated, AddressOf onReqParametreHasBeenInvalidated
    End Function

    ''' <summary>
    ''' Source : EntreeModeleTxGar
    ''' Ajout : Détermination d'une table de travail résultant du traitement en entrée paramétré
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ''' 
    Protected Function creeTraitMoteurMethode1() As Boolean Implements ITraitementsOMANE.creeTraitMoteurMethode1
        Dim moteurMethode1 As New Moteur_Methode1(PTIC_Util.nomTraitMoteurMethode1, _
                                                  Nothing, _
                                                  _universOMANE)
    End Function
    ''' <summary>
    ''' Source : EntreeModeleTxGar
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitMoteurMethode2() As Boolean Implements ITraitementsOMANE.creeTraitMoteurMethode2
        Dim moteurMethode2 As New Moteur_Methode2(PTIC_Util.nomTraitMoteurMethode2, _
                                                  Nothing, _
                                                  _universOMANE)
    End Function
    ''' <summary>
    ''' Source : aucune, le traitement est autonome
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Protected Function creeTraitMoteurEcheancier() As Boolean Implements ITraitementsOMANE.creeTraitMoteurEcheancier
        Dim moteurEcheancier As New Moteur_Echeancier(PTIC_Util.nomTraitMoteurEcheancier, _
                                          Nothing, _
                                          _universOMANE)
    End Function

#End Region

#Region "Actualisation des traitements lorsque les paramètres sont modifiés"
    Public Function actualise(ByVal sender As Object, ByVal notification As Object) As resultatValidationContraintes Implements IObserver.actualise
        If TypeOf sender Is IParamV2 Then

            Dim parametreModifie As IParamV2 = CType(sender, IParamV2)

            If parametreModifie.nom = csteParam.nomTable_Mortalite_H Then
                actualiseTraitTbleMortH(parametreModifie.getValeurUniqueAsObject)
                getTraitMoteurMethode2.tablesDeTravail.setTableMortaliteH(getTraitTbleMortH.execute_DataTable(True), parametreModifie.getValeurUniqueAsObject)
                'MsgBox("La table de mortalité des hommes a bien été chargée dans le moteur de calcul 2")
            ElseIf parametreModifie.nom = csteParam.nomTable_Mortalite_F Then
                actualiseTraitTbleMortF(parametreModifie.getValeurUniqueAsObject)
                getTraitMoteurMethode2.tablesDeTravail.setTableMortaliteF(getTraitTbleMortF.execute_DataTable(True), parametreModifie.getValeurUniqueAsObject)
                'MsgBox("La table de mortalité des femmes a bien été chargée dans le moteur de calcul 2")
            ElseIf parametreModifie.nom = csteParam.nomGrilleTarifaire Then
                actualiseGrilleTarifaire(parametreModifie.getValeurUniqueAsObject)
            ElseIf parametreModifie.nom = csteParam.nomTble_maintien_incinvM2 Then
                actualiseTraitTbleMaintienINCINVM2(parametreModifie.getValeurUniqueAsObject)
                getTraitMoteurMethode2.tablesDeTravail.setTableMaintienINCINV(getTraitMaintienINCINVM2.execute_DataTable(True), parametreModifie.getValeurUniqueAsObject)
                'MsgBox("La table de maintien en INCAP/INVAL a bien été enregistrée dans le modèle")
            End If

        End If
        If TypeOf sender Is tableBDD Then
            Dim tbleModifiee As tableBDD = CType(sender, tableBDD)
            Dim notif As modifsTraitement = notification
            If tbleModifiee.nom = PTIC_Util.nomTraitTbleEncours And notif = modifsTraitement.nomTable Then
                If ContainsKey(PTIC_Util.nomTraitEntreeModeleTxGar) Then
                    getTraitTbleEncoursPrep1.invalideAll()
                End If
            End If
        End If

        Return Nothing

    End Function
    Private Function actualiseTraitTbleMortH(ByVal nomPhysiqueRelatif As String) As Boolean _
        Implements ITraitementsOMANE.actualiseTraitTbleMortH
        getTraitTbleMortH.nomCompletFichier = New Cla_NomFichier(csteEmplacementReferentiel & nomPhysiqueRelatif)
        Return True
    End Function
    Private Function actualiseTraitTbleMortF(ByVal nomPhysiqueRelatif As String) As Boolean _
        Implements ITraitementsOMANE.actualiseTraitTbleMortF
        getTraitTbleMortF.nomCompletFichier = New Cla_NomFichier(csteEmplacementReferentiel & nomPhysiqueRelatif)
        'Si le type de table de mortalité a changé, refaire les jointures avec le traitement postérieur
        Return True
    End Function
    Private Function actualiseGrilleTarifaire(ByVal nomGrille As String) As Boolean _
        Implements ITraitementsOMANE.actualiseGrilleTarifaire
        getTraitGrilleTarifaire.nomCompletFichier = New Cla_NomFichier(csteEmplacementReferentiel & nomGrille)
        actualiseJointuresGrilleTarifaire()
        getTraitTbleTravail.invalideAll()
        Return True
    End Function
    Private Sub actualiseJointuresGrilleTarifaire() Implements ITraitementsOMANE.actualiseJointuresGrilleTarifaire

        Dim tbleEncoursPrep2 As RequeteBDD = getTraitTbleEncoursPrep2()
        Dim tbleGrilleTarifaire As tableBDD = getTraitGrilleTarifaire()
        Dim reqTableTravail As RequeteBDD = _universOMANE.getTraitement("traitTableTravail")

        For Each corresp As Correspondance In getTraitTbleEncoursPrep2.ListeChampsSortie.Values
            If tbleGrilleTarifaire.ListeChampsSortie.ContainsKey(corresp.chOutil.Nom) Then
                tbleGrilleTarifaire.ListeChampsSortie.setDescription(corresp.chOutil.Nom, corresp.description)
            End If
        Next

        reqTableTravail.clearJointures()

        Dim nomChjointtbleEncoursPrep2 As New List(Of String)
        Dim nomChJointGrilleTarif As New List(Of String)
        For Each correspTarif As Correspondance In tbleGrilleTarifaire.ListeChampsSortie.Values
            If getTraitTbleEncoursPrep2.ListeChampsSortie.ContainsKey(correspTarif.description) Then
                'Ajouter la variable aux jointures à gauche
                nomChjointtbleEncoursPrep2.Add(correspTarif.description)
                'Ajouter la variable aux jointures à droite
                nomChJointGrilleTarif.Add(correspTarif.description)
            End If
        Next

        reqTableTravail.addJointure(tbleEncoursPrep2.nom, _
                                    nomChjointtbleEncoursPrep2, _
                                    tbleGrilleTarifaire.nom, _
                                    nomChJointGrilleTarif, _
                                    typeJointure.GAUCHE)


    End Sub
    Private Function actualiseTraitTbleMaintienINCINVM2(ByVal nomPhysiqueRelatif As String) As Boolean _
        Implements ITraitementsOMANE.actualiseTraitTbleMaintienINCINVM2
        getTraitMaintienINCINVM2.nomCompletFichier = New Cla_NomFichier(csteEmplacementReferentiel & nomPhysiqueRelatif)
        Return True
    End Function
    Private Sub onReqParametreHasBeenInvalidated(ByVal sender As Object, ByVal notification As Object)
        getTraitEntreeModeleTxGar.invalideAll()
    End Sub
#End Region

End Class